package main

import "fmt"

/**
map key
map使用哈希表，必须可以比较相等
处理slice，map，function的内建类型都可以作为key
struct类型不包含上述字段，也可作为key
*/
func main() {

	m := map[string]string{
		"name":   "ccmousr",
		"course": "math",
	}
	m2 := make(map[string]int)

	var m3 map[string]int

	fmt.Println(m)
	fmt.Println(m2)
	fmt.Println(m3)

	fmt.Println("Traversing map")

	for k, v := range m {
		fmt.Println(k, v)
	}

	fmt.Println("Getting values")
	if courseName, ok := m["course"]; ok {
		fmt.Println(courseName, ok)
	}

	fmt.Println("Deleting values")
	delete(m, "name")
	name, ok := m["name"]

	fmt.Println(name, ok)

}
